-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: CORD Blockchain Integration for Identity, Schema, and Credential Anchoring in Sunbird RC #354
base: main
Are you sure you want to change the base?
Conversation
@ashwin275 1. CORD Implementation: @surendrasinghs please feel free to add your comments if I’ve missed anything. |
@pallakartheekreddy Thank you for the feedback! CORD Implementation: I’ll refactor it to use an interface to make it flexible for future additions like Solana. Testing: I’ll create a test suite for this and update it once it’s ready. Documentation: The steps for connecting RC with CORD are already documented. |
@pallakartheekreddy I've updated the code based on your feedback. I've created an interface for each service and added a test suite as well. and here is the detailed steps to integrate rc in to cord: |
@ashwin275 Did you test the above changes with and without CORD? Can we have a demo? It has 48 files, which makes it difficult to review :-) |
…ckchain status instead of pending
@pallakartheekreddy code has been updated as per our last discussion. |
What needs to be done further for getting this reviewed? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Review considerations:
-
Interoperability:
- All places where CORD is considered, it is under an environment variable, thus giving deployers a choice of turning it off
- Any other ledger providers can now plugin their logic in similar way by extending the code
-
The verification and issuer-agent (currently one which anchors to chain) are kept as URL, thus making it an option for any SIs to provide services, and also an option to host it locally from the docker compose.
-
All the required DB column addition/migration scripts are provided.
-
CORD integration steps seems to be fine.
Overview
This RFC proposes the integration of the CORD blockchain into the Sunbird RC ecosystem to enable the anchoring of Decentralized Identifiers (DID), Schemas, and Verifiable Credentials (VCs). This feature will provide a secure, verifiable, and tamper-proof solution for credential issuers to anchor identities, schemas, and credentials on the blockchain.
The integration will be optional and configurable, allowing adopters to enable blockchain anchoring via environment variables, with the feature being disabled by default.
Motivation
For Sunbird RC adopters, anchoring credentials, identities, and schemas on a blockchain provides:
Immutable Proofs: Ensures that identities, schemas, and credentials remain secure and unaltered.
Verification: Provides a robust, distributed mechanism for validating the authenticity of entities and credentials.
Enhanced Trust: Blockchain anchoring adds a layer of transparency and trust to the verification of credentials, schemas,
and identities.
Design and Implementation
Architectural Overview
In this integration:
This architecture ensures modularity and simplifies maintenance by decoupling blockchain logic from Sunbird RC services.
Key Components Affected
The following Sunbird RC services will interact with the CORD Middleware for anchoring:
Configuration Requirements
Environment Variable Configuration
To enable blockchain anchoring, configure the following environment variables in Sunbird RC. By default, anchoring is disabled and can be enabled by setting ANCHOR_TO_CORD to true.
1.Anchoring DID and Schema to CORD
To anchor DIDs and schemas, set the following variables:
ANCHOR_TO_CORD = true ISSUER_AGENT_BASE_URL = https://<CORD_MIDDLEWARE_DOMAIN_OR_IP>/api/v1
2.Anchoring Verifiable Credentials to CORD
To enable VC anchoring, add the following:
VERIFICATION_MIDDLEWARE_BASE_URL=https://<CORD_MIDDLEWARE_IP_OR_DOMAIN>/api/v1/verify
These configurations instruct Sunbird RC to route all anchoring requests to the CORD middleware.